
package org.xteam.pascal.parser.ast;

public interface IPascalVisitor {

	void visitProgram(Program aProgram);
	
	void visitBlock(Block aBlock);
	
	void visitConstantDefinition(ConstantDefinition aConstantDefinition);
	
	void visitTypeDefinition(TypeDefinition aTypeDefinition);
	
	void visitVariableDeclaration(VariableDeclaration aVariableDeclaration);
	
	void visitProcedure(Procedure aProcedure);
	
	void visitFunction(Function aFunction);
	
	void visitVariableParameter(VariableParameter aVariableParameter);
	
	void visitProcedureParameter(ProcedureParameter aProcedureParameter);
	
	void visitFunctionParameter(FunctionParameter aFunctionParameter);
	
	void visitVarFlag(VarFlag aVarFlag);
	
	void visitReferenceType(ReferenceType aReferenceType);
	
	void visitArraySchemaType(ArraySchemaType aArraySchemaType);
	
	void visitPackedArraySchemaType(PackedArraySchemaType aPackedArraySchemaType);
	
	void visitRange(Range aRange);
	
	void visitTypeReference(TypeReference aTypeReference);
	
	void visitEnumType(EnumType aEnumType);
	
	void visitRangeType(RangeType aRangeType);
	
	void visitPointerType(PointerType aPointerType);
	
	void visitArrayType(ArrayType aArrayType);
	
	void visitRecordType(RecordType aRecordType);
	
	void visitFieldsAndVariant(FieldsAndVariant aFieldsAndVariant);
	
	void visitRecordCase(RecordCase aRecordCase);
	
	void visitVariantSelector(VariantSelector aVariantSelector);
	
	void visitRecordCaseArm(RecordCaseArm aRecordCaseArm);
	
	void visitField(Field aField);
	
	void visitSetType(SetType aSetType);
	
	void visitFileType(FileType aFileType);
	
	void visitPackedFlag(PackedFlag aPackedFlag);
	
	void visitEmptyStatement(EmptyStatement aEmptyStatement);
	
	void visitLabelStatement(LabelStatement aLabelStatement);
	
	void visitAssignment(Assignment aAssignment);
	
	void visitFunctionCall(FunctionCall aFunctionCall);
	
	void visitGoto(Goto aGoto);
	
	void visitCompound(Compound aCompound);
	
	void visitIf(If aIf);
	
	void visitCase(Case aCase);
	
	void visitCaseArm(CaseArm aCaseArm);
	
	void visitRepeatUntil(RepeatUntil aRepeatUntil);
	
	void visitWhile(While aWhile);
	
	void visitFor(For aFor);
	
	void visitWith(With aWith);
	
	void visitUpFlag(UpFlag aUpFlag);
	
	void visitDownFlag(DownFlag aDownFlag);
	
	void visitVariableAccess(VariableAccess aVariableAccess);
	
	void visitArrayAccess(ArrayAccess aArrayAccess);
	
	void visitFieldAccess(FieldAccess aFieldAccess);
	
	void visitPointerAccess(PointerAccess aPointerAccess);
	
	void visitEqualsExpression(EqualsExpression aEqualsExpression);
	
	void visitNotEqualsExpression(NotEqualsExpression aNotEqualsExpression);
	
	void visitLowerThanExpression(LowerThanExpression aLowerThanExpression);
	
	void visitGreaterThanExpression(GreaterThanExpression aGreaterThanExpression);
	
	void visitLowerOrEqualsExpression(LowerOrEqualsExpression aLowerOrEqualsExpression);
	
	void visitGreaterOrEqualsExpression(GreaterOrEqualsExpression aGreaterOrEqualsExpression);
	
	void visitInExpression(InExpression aInExpression);
	
	void visitAddExpression(AddExpression aAddExpression);
	
	void visitSubExpression(SubExpression aSubExpression);
	
	void visitOrExpression(OrExpression aOrExpression);
	
	void visitMulExpression(MulExpression aMulExpression);
	
	void visitDivExpression(DivExpression aDivExpression);
	
	void visitIntegralDivExpression(IntegralDivExpression aIntegralDivExpression);
	
	void visitModuloExpression(ModuloExpression aModuloExpression);
	
	void visitAndExpression(AndExpression aAndExpression);
	
	void visitNegateExpression(NegateExpression aNegateExpression);
	
	void visitNotExpression(NotExpression aNotExpression);
	
	void visitFormatExpression(FormatExpression aFormatExpression);
	
	void visitIdentifierExpression(IdentifierExpression aIdentifierExpression);
	
	void visitStringExpression(StringExpression aStringExpression);
	
	void visitNumberExpression(NumberExpression aNumberExpression);
	
	void visitIntegerExpression(IntegerExpression aIntegerExpression);
	
	void visitNilExpression(NilExpression aNilExpression);
	
	void visitFuncallExpression(FuncallExpression aFuncallExpression);
	
	void visitIdentifier(Identifier aIdentifier);
	
	void visitIntegerValue(IntegerValue aIntegerValue);
	
}
